﻿using Echart.Model.Data;
using Echart.Model.ToolTip;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Echart.Model.SingelAxis
{
    public class singleAxis
    {
        /// <summary>
        /// 组件 ID
        /// </summary>
        public string id { get; set; }

        /// <summary>
        /// 这个属性目前只支持为 slider，不需要更改。
        /// </summary>
        public string type { get; set; }

        /// <summary>
        /// 轴的类型。可选值为：
        /// 'value' 数值轴，适用于连续数据。
        /// 'category' 类目轴，适用于离散的类目数据。
        /// 'time' 时间轴，适用于连续的时序数据，与数值轴相比时间轴带有时间的格式化，在刻度计算上也有所不同，例如会根据跨度的范围来决定使用月，星期，日还是小时范围的刻度。
        /// </summary>
        public string axisType { get; set; }

        /// <summary>
        /// 表示当前选中项是哪项。
        /// </summary>
        public double? currentIndex { get; set; }

        /// <summary>
        /// 表示是否自动播放。
        /// </summary>
        public bool? autoPlay { get; set; }

        /// <summary>
        /// 表示是否反向播放。
        /// </summary>
        public bool? rewind { get; set; }

        /// <summary>
        /// 表示是否循环播放。
        /// </summary>
        public bool? loop { get; set; }

        /// <summary>
        ///所有图形的 zlevel 值。
        /// </summary>
        public double? playInterval { get; set; }

        /// <summary>
        ///表示『播放』按钮的位置。可选值：'left'、'right'。
        /// </summary>
        public string controlPosition { get; set; }

        /// <summary>
        /// 拖动圆点的时候，是否实时更新视图。
        /// </summary>
        public bool? realtime { get; set; }

        /// <summary>
        ///所有图形的 zlevel 值。
        /// </summary>
        public double? zlevel { get; set; }

        /// <summary>
        ///所有图形的 z 值。
        /// </summary>
        public double? z { get; set; }

        /// <summary>
        ///single组件离容器左侧的距离。
        /// </summary>
        public string left { get; set; }

        /// <summary>
        ///single组件离容器右侧的距离。
        /// </summary>
        public string right { get; set; }

        /// <summary>
        ///single组件离容器上侧的距离。
        /// </summary>
        public string top { get; set; }

        /// <summary>
        ///single组件离容器下侧的距离。
        /// </summary>
        public string bottom { get; set; }

        /// <summary>
        ///single组件的宽度
        /// </summary>
        public string width { get; set; }

        /// <summary>
        ///single组件的高度
        /// </summary>
        public string height { get; set; }

        /// <summary>
        /// timeline内边距
        /// </summary>
        public Array[] padding { get; set; }

        /// <summary>
        /// 轴的朝向，默认水平朝向，可以设置成 'vertical' 垂直朝向。
        /// </summary>
        public string orient { get; set; }

        /// <summary>
        /// 是否反向放置 timeline，反向则首位颠倒过来。
        /// </summary>
        public bool? inverse { get; set; }

        /// <summary>
        /// timeline标记的图形。
        /// </summary>
        public string symbol { get; set; }

        /// <summary>
        /// timeline标记的大小
        /// </summary>
        public Array[] symbolSize { get; set; }

        /// <summary>
        /// timeline标记的旋转角度
        /// </summary>
        public double? symbolRotate { get; set; }

        /// <summary>
        /// 是否在缩放时保持该图形的长宽比。
        /// </summary>
        public bool? symbolKeepAspect { get; set; }

        /// <summary>
        /// timeline标记的大小
        /// </summary>
        public Array[] symbolOffset { get; set; }

        /// <summary>
        /// 线风格
        /// </summary>
        public object lineStyle { get; set; }

        /// <summary>
        /// 文字风格
        /// </summary>
        public object label { get; set; }

        /// <summary>
        /// timeline 图形样式。
        /// </summary>
        public object itemStyle { get; set; }

        /// <summary>
        /// 『当前项』（checkpoint）的图形样式。
        /// </summary>
        public object checkpointStyle { get; set; }

        /// <summary>
        /// 『控制按钮』的样式。『控制按钮』包括：『播放按钮』、『前进按钮』、『后退按钮』。
        /// </summary>
        public object controlStyle { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public object emphasis { get; set; }   

        /// <summary>
        /// 类目数据
        /// </summary>
        public data[] data { get; set; }
    }
}
